/**
 * 自由容器
 * @param {*} container 容器
 * @param {*} callback 回调
 * @param {*} scroll 滚动数据{loading: false,loadEnd: false}
 */
export function scrollLoad(container, callback, scroll) {
	callback();
	container.onscroll = function () {
		let lastChild = this.lastChild;
		if (!lastChild) {
			return;
		}
		var lastDomStyle = window.getComputedStyle(lastChild);
		var lastHight =
			this.lastChild.offsetHeight +
			parseInt(lastDomStyle.marginTop) +
			parseInt(lastDomStyle.marginBottom);
		// 滚动到底加载： 文档高度 - 文档滚动过高度 <= 容器高度
		// 滚动到最后一条加载： 文档高度 - 文档滚动过高度 - 容器内单个子元素高度 <= 容器高度
		if (
			!scroll.loading &&
			!scroll.loadEnd &&
			this.scrollHeight - this.scrollTop - lastHight <= this.clientHeight
		) {
			scroll.loading = true;
			callback();
		}
	};
}

/**
 * 容器在视口底部
 * @param {*} container 容器
 * @param {*} callback 回调
 * @param {*} scroll 滚动数据{loading: false,loadEnd: false}
 */
export function scrollLoadCustom(container, callback, scroll) {
	callback();
	const HEIGHT = window.innerHeight;
	console.log(HEIGHT);
	container.onscroll = function () {
		let lastChild = this.lastChild;
		if (!lastChild) {
			return;
		}
		// 容器最后一个子元素距离容器底部距离小于100
		if (
			!scroll.loading &&
			!scroll.loadEnd &&
			lastChild.getBoundingClientRect().top - HEIGHT < 100
		) {
			scroll.loading = true;
			callback();
		}
	};
}

/**
 * 解绑滚动加载
 * @param {*} container
 */
export function unBindLoad(container) {
	container.onscroll = null;
}
